Test Data Creation এবং @isTest Annotation

Computer Programming - এপেক্স (Apex) Apex Unit Testing (Apex Unit Testing) |
247
247

Test Data Creation এবং @isTest Annotation Salesforce-এর Apex Unit Testing-এ গুরুত্বপূর্ণ ভূমিকা পালন করে। Test Data Creation মূল ডেটাবেসে কোনো পরিবর্তন না করে শুধুমাত্র টেস্টিংয়ের জন্য প্রয়োজনীয় ডেটা তৈরি করে, আর @isTest Annotation ব্যবহার করে টেস্ট ক্লাস এবং মেথড চিহ্নিত করা হয়।


Test Data Creation

Salesforce প্ল্যাটফর্মে Unit Test চলাকালীন Test Data Creation করতে হয়, যা মূল ডেটাবেসের উপর নির্ভর না করে কেবল টেস্টিংয়ের জন্য ডেটা তৈরি করে। Test Data তৈরি করার সময় SeeAllData=false ব্যবহার করা হয়, যা নিশ্চিত করে যে টেস্ট চলাকালীন মূল ডেটাবেস ডেটা অ্যাক্সেস করা হবে না। Unit Test-এর সঠিকতা ও স্বাধীনতা বজায় রাখতে এটি অত্যন্ত গুরুত্বপূর্ণ।

Test Data Creation-এর কারণ

  1. মূল ডেটাবেসে পরিবর্তন না করা: Test Data Creation মূল ডেটাবেসে পরিবর্তন আনে না, তাই টেস্ট চলাকালীন ডেটা সুরক্ষিত থাকে।
  2. বিশ্বাসযোগ্য এবং পুনরায় ব্যবহারযোগ্য টেস্ট: নির্দিষ্ট টেস্ট ডেটা ব্যবহার করে টেস্ট পুনরায় চালানো সহজ হয় এবং এটি একই ফলাফল দেয়।
  3. Test Coverage নিশ্চিত করা: Test Data Creation করে সহজেই টেস্ট কভারেজ বাড়ানো যায়।

Test Data Creation উদাহরণ

নিচের উদাহরণে Account এবং Contact রেকর্ড তৈরি করে টেস্ট ডেটা প্রস্তুত করা হয়েছে।

@isTest
public class TestDataExample {
    public static Account createTestAccount() {
        Account acc = new Account(Name = 'Test Account', Industry = 'Technology');
        insert acc;
        return acc;
    }

    public static Contact createTestContact(Id accountId) {
        Contact con = new Contact(FirstName = 'John', LastName = 'Doe', Email = 'john.doe@example.com', AccountId = accountId);
        insert con;
        return con;
    }
}
  • createTestAccount: একটি Account রেকর্ড তৈরি করে এবং ডেটাবেসে ইনসার্ট করে।
  • createTestContact: Account আইডি ব্যবহার করে একটি Contact রেকর্ড তৈরি করে এবং ডেটাবেসে ইনসার্ট করে।

এভাবে TestDataExample ক্লাস ব্যবহার করে টেস্টের জন্য বিভিন্ন ক্লাসে টেস্ট ডেটা তৈরি ও পুনঃব্যবহার করা যায়।


@isTest Annotation

@isTest Annotation হলো Apex-এ টেস্ট ক্লাস ও মেথড চিহ্নিত করার জন্য ব্যবহৃত একটি অ্যানোটেশন। @isTest অ্যানোটেশন ব্যবহার করে টেস্টিং-এর জন্য নির্দিষ্ট মেথড বা ক্লাস চিহ্নিত করা যায়, যা প্রোডাকশন কোড থেকে আলাদা থাকে।

@isTest Annotation-এর ব্যবহার

  1. Test Class নির্দেশ করতে: @isTest অ্যানোটেশন টেস্ট ক্লাসের শুরুতে ব্যবহার করে পুরো ক্লাসকে টেস্ট ক্লাস হিসেবে চিহ্নিত করা যায়।
  2. Test Method নির্দেশ করতে: @isTest অ্যানোটেশন টেস্ট মেথডের শুরুতে ব্যবহার করা হয়, যাতে এই মেথডটি শুধুমাত্র টেস্টের জন্য চালানো হয়।
  3. SeeAllData=false ব্যবহার: @isTest অ্যানোটেশনের সাথে SeeAllData=false ব্যবহার করলে টেস্ট মেথডে মূল ডেটাবেসে থাকা কোনো ডেটা অ্যাক্সেস করা যাবে না, যা টেস্ট ডেটা নিরাপদ রাখে।

@isTest Annotation উদাহরণ

@isTest(SeeAllData=false)
public class AccountHandlerTest {

    // Test Method
    @isTest
    static void testUpdateAccountIndustry() {
        // Test Data তৈরি
        Account acc = new Account(Name = 'Tech Solutions', Industry = 'Healthcare');
        insert acc;

        // পরীক্ষিত মেথড কল
        AccountHandler.updateAccountIndustry(acc.Id, 'Technology');

        // আউটপুট যাচাই
        Account updatedAcc = [SELECT Industry FROM Account WHERE Id = :acc.Id];
        System.assertEquals('Technology', updatedAcc.Industry, 'Industry field did not update correctly');
    }
}
  • @isTest(SeeAllData=false): এই অ্যানোটেশন নিশ্চিত করে যে টেস্ট ডেটা তৈরি করার সময় মূল ডেটাবেস ডেটা অ্যাক্সেস করা হবে না।
  • @isTest: testUpdateAccountIndustry মেথডে @isTest অ্যানোটেশন ব্যবহার করা হয়েছে, যা মেথডটিকে টেস্ট মেথড হিসেবে চিহ্নিত করে।

SeeAllData=false এর গুরুত্ব

SeeAllData=false ব্যবহার করে নিশ্চিত করা হয় যে টেস্ট মেথড শুধুমাত্র টেস্ট ডেটা ব্যবহার করবে এবং মূল ডেটাবেস ডেটা অ্যাক্সেস করবে না। এটি টেস্ট ডেটার নির্ভরযোগ্যতা এবং নিরাপত্তা নিশ্চিত করে।

  1. পরিবর্তনশীল ডেটার প্রভাব থেকে রক্ষা: SeeAllData=false ব্যবহার করলে টেস্ট শুধুমাত্র নিজস্ব ডেটা নিয়ে কাজ করে, যার ফলে অন্য ডেটার পরিবর্তন টেস্টের উপর প্রভাব ফেলতে পারে না।
  2. Test Coverage বৃদ্ধি: এটি নিশ্চিত করে যে টেস্ট কভারেজ শুধুমাত্র প্রয়োজনীয় অংশেই সীমাবদ্ধ এবং নির্ভরযোগ্য।

ভালো অনুশীলন

  1. Test Data Creation Utility Class তৈরি করুন: Test Data Creation সহজ ও পুনরায় ব্যবহারযোগ্য করতে Utility Class ব্যবহার করা ভাল।
  2. SeeAllData=false সবসময় ব্যবহার করুন: টেস্টের নিরাপত্তা ও নির্ভরযোগ্যতা নিশ্চিত করতে SeeAllData=false ব্যবহার করুন।
  3. Test Coverage সর্বাধিক করুন: Test Data তৈরি করে টেস্ট কভারেজ বৃদ্ধি করুন এবং কমপক্ষে ৭৫% কভারেজ নিশ্চিত করুন।
  4. System.assert ব্যবহার করুন: টেস্ট রেজাল্ট যাচাই করতে System.assert() ব্যবহার করে আউটপুট যাচাই করুন।

সংক্ষেপে

  • Test Data Creation ইউনিট টেস্টের জন্য নির্দিষ্ট ডেটা তৈরি করে, যা মূল ডেটাবেসে কোনো পরিবর্তন আনে না।
  • @isTest Annotation টেস্ট ক্লাস ও মেথড চিহ্নিত করতে ব্যবহৃত হয় এবং প্রোডাকশন কোড থেকে আলাদা থাকে।
  • SeeAllData=false টেস্টের নিরাপত্তা ও নির্ভরযোগ্যতা নিশ্চিত করতে ব্যবহৃত হয়।

Apex Unit Testing-এ Test Data Creation এবং @isTest Annotation ব্যবহার করে উন্নত, নিরাপদ, এবং নির্ভরযোগ্য টেস্টিং নিশ্চিত করা যায়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion